PostgreSQL pg_dumpall
1 pg_dumpall 命令语法
pg_dumpall --help
pg_dumpall可以将一个PostgreSQL数据库集群中的所有数据都提取到一个SQL脚本文件中。 用
法:
pg_dumpall [选项]...
通用选项:
-f, --file=FILENAME 输出文件名
-v, --verbose 详细模式
-V, --version 输出版本信息,然后退出
--lock-wait-timeout=TIMEOUT 等待表锁超时后操作失败
-?, --help 显示此帮助信息并退出
控制输出内容的选项:
-a, --data-only 仅转储数据,而不转储schema
-c, --clean 重新创建数据库之前清除(删除)数据库
-g, --globals-only 仅转储全局对象,而不转储数据库
-o, --oids 在转储中包含OID
-O, --no-owner 以纯文本格式跳过对象所有权的恢复
-r, --roles-only 仅转储角色,而不转储数据库和表空间
-s, --schema-only 仅转储schema,而不转储数据
-S, --superuser=NAME 要在转储中使用的超级用户名
-t, --tablespaces-only 仅转储表空间,而不转储数据库和角色
-x, --no-privileges 不转储特权(grant/revoke)
--binary-upgrade 仅供升级工具使用
--column-inserts 以带有列名的INSERT命令的形式转储数据
--disable-dollar-quoting 禁用美元(符号)引号,而是使用SQL标准引号
--disable-triggers 在仅恢复数据期间禁用触发器
--inserts 以INSERT命令(而非COPY命令)的形式转储数据
--no-publications 不导出逻辑复制发布端数据源定义 ➊
--no-security-labels 不转储安全标签的分配
--no-subscriptions 不导出逻辑复制订阅端的数据订阅定义 ➋
--no-sync 不等待变更安全写入磁盘 ➌
--no-security-labels 不转储安全标签分配
--no-tablespaces 不转储表空间分配
--no-unlogged-table-data 不转储不记录WAL日志的表的数据
--no-role-passwords 不转储角色的密码 ➍
--quote-all-identifiers 所有标识符加引号,即使不是关键字也加
--use-set-session-authorization 使用SET SESSION AUTHORIZATION命令代替ALTER OWNER
命令来设置所有权
连接选项:
-d, --dbname=CONNSTR 使用连接连接串连接
-h, --host=主机名 数据库服务器主机或套接字目录
-l, --database=DBNAME 替代默认数据库
-p, --port=端口号 数据库服务器端口号
-U, --username=名称 作为指定数据库用户连接
-w, --no-password 永远不提示输入密码
-W, --password 强制要求输入密码(应该自动发生)
--role=ROLENAME 在转储之前执行SET ROLE命令
如果未使用-f/--file,则会将SQL脚本写到标准输出中。
2 示例:
pg_dumpall 只能备份为 sql 文件,所以不建议在大型数据库上进行使用.
- 备份实例中所有数据库和设置
pg_dumpall -cf all.backup
- 只备份role 和表空间.
pg_dumpall -cgf all.backup
- 备份role .
pg_dumpall -crf all.backup